package com.library.dao;

import com.library.entity.Book;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BookDao {
    /**
     * 添加图书
     */
    int insert(Book book);

    /**
     * 根据ID查询图书
     */
    Book findById(Integer id);

    /**
     * 根据ISBN查询图书
     */
    Book findByIsbn(String isbn);

    /**
     * 查询所有图书
     */
    List<Book> findAll();

    /**
     * 根据条件查询图书
     */
    List<Book> findByCondition(@Param("title") String title, 
                               @Param("author") String author, 
                               @Param("categoryId") Integer categoryId);

    /**
     * 更新图书信息
     */
    int update(Book book);

    /**
     * 删除图书
     */
    int delete(Integer id);

    /**
     * 更新图书可借数量
     */
    int updateAvailableQuantity(@Param("bookId") Integer bookId, 
                               @Param("quantity") Integer quantity);

    /**
     * 统计图书总数
     */
    int count();
}